package cn.iocoder.yudao.module.system.controller.admin.a_pictures.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotNull;

/**
 * @author lxj
 */
@Schema(description = "管理后台 - 稿件管理 - 图片 Request VO")
@Data
@ToString(callSuper = true)
public class PicturesReqVO {

    @Schema(description = "图片", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "图片不能为空")
    private MultipartFile imageFile;

    @Schema(description = "图片id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String id;

    @Schema(description = "图片描述", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    //@NotNull(message = "图片描述不能为空")
    private String content;

    @Schema(description = "图片作者", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String author;

    @Schema(description = "图片创建时间或拍摄时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String picCreateTime;

    @Schema(description = "图片关键词", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String keyword;

    @Schema(description = "图片文件类型", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String suffix;

    @Schema(description = "图片分辨率", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String picResolution;


    @Schema(description = "图片来源", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String source;

    @Schema(description = "图片类别", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String category;


    @Schema(description = "图片下载地址", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String url;


    @Schema(description = "版本数", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer version;


    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String createTime;


    @Schema(description = "最后修改时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String lastModificationTime;


    @Schema(description = "高度", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer height;


    @Schema(description = "宽度", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer width;


    @Schema(description = "是否加水印", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer watermark;

    @Schema(description = "文件名", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String fileName;

    @Schema(description = "删除状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String deleted;

    @Schema(description = "创建人id")
    private String createUserId;

    @Schema(description = "是否送审（0未送、1已送、2审核完成）")
    private Integer reviewStatus;

    @Schema(description = "是否为共享素材库（0不是、1是）")
    private String isShare;

    @Schema(description = "是否送审（0不推、1推送）")
    private String isPush;

    /**
     * 统计每张图片的下载次数
     */
    @Schema(description = "下载次数", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Integer picturesDownloadNum;

}
